﻿using PoliticalClassifier.Support;

namespace PoliticalClassifier.Web.Models
{
	/// <summary>
	/// Represents simulation data.
	/// </summary>
	/// <remarks>
	/// This view-model class is used to facilitate the transfer of data between views and controllers.  It contains the simulation configuration data and results.
	/// </remarks>
	public class DisplayResultsViewModel
	{
		/// <summary>
		/// Array of attribute weights.
		/// </summary>
		/// <value>
		/// An array of x, y weight values for voter attribute data.  Each weight consists of a name, x value, and y value, represented by a <see cref="PointViewModel" />.
		/// </value>
		public PointViewModel[] Weights { get; set; }


		/// <summary>
		/// Array of party coordinates.
		/// </summary>
		/// <value>
		/// An array of x, y party coordinates.  Each party coordinate consists of a party name, x value, and y value, represented by a <see cref="PointViewModel" />.
		/// </value>
		public PointViewModel[] Candidates { get; set; }


		/// <summary>
		/// Simulation results.
		/// </summary>
		/// <value>
		/// An <see cref="ISimulationResults" /> object containing the results of the simulation.  This value will be null until the simulation is successfully run.
		/// </value>
		public ISimulationResults Results { get; set; }
	}
}